<?php
	require_once('conf/top.php');

	connectDb();

    $date_get =  null;
    $categories_get = array();
    $reccurence_get = null;
    $orderby_get = null;
    $keyword_get = null;
    $orderby_get = null;

	$datetime = date("Y-m-d H:i:s");

	if(!empty($_GET)) {
        if (isset($_GET['date'])) {
            $date_get = date($_GET['date']);
        }
        else{
        	$date_get = $datetime;
        }
        if (isset($_GET['categories'])) {
            if(!empty($_GET['categories'])) {
            	foreach($_GET['categories'] as $categorie) {
                    $categories_get[] = $categorie;
                }
            }
        }
        if (isset($_GET['reccurence'])) {
            $reccurence_get = $_GET['reccurence'];
        }
        if (isset($_GET['orderby'])) {
            switch($_GET['orderby']) {
                case 'price_c':
                    $orderby_get = 'price_c';
                    break;
                case 'price_d':
                    $orderby_get = 'price_d';
                    break;
                case 'time_c':
                    $orderby_get = 'time_c';
                    break;
                case 'time_d':
                	$orderby_get = 'time_d';
                	break;
                default:
                    $orderby_get = null;
                    break;
            }
        }
        if (isset($_GET['keyword'])) {
            $keyword_get = $_GET['keyword'];
        }

        if(isset($_SESSION['id_user']) && !empty($_SESSION['id_user'])){ // Gère le fait que si l'utilisateur est connecté, il ne voit pas ses propres temps.
			$usersTimes = getUserByMultipleArgsLimited($date_get, $categories_get, $reccurence_get, $keyword_get, $orderby_get, $limit = 20, $offset = 0, $_SESSION['id_user']);
		}
		else{
        	$usersTimes = getUserByMultipleArgsLimited($date_get, $categories_get, $reccurence_get, $keyword_get, $orderby_get, $limit = 20);
    	}
    }
    else{
        if(isset($_SESSION['id_user']) && !empty($_SESSION['id_user'])){ // Gère le fait que si l'utilisateur est connecté, il ne voit pas ses propres temps.
			$usersTimes = getAllUsersAvailabilityLimited($datetime, 5 , 0, $_SESSION['id_user']);
		}
		else{
			$usersTimes = getAllUsersAvailabilityLimited($datetime, 5 , 0);
		}
    }

    // Permet de créer les dates selectionnable selon un pas qui est définit selon la réccurence.
    // ToDo ajax bouton plus avec l'offset de chooseDate.
	foreach ($usersTimes as &$userTime){
		$userTime['categories'] = getSkillFromUser($userTime['id_user']);
		$userTime['datesChoice'] = chooseDate($userTime,0,5);
	}
	unset($userTime); // Détruit la référence sur le dernier élément
    echo(json_encode($usersTimes));